package top.yj95.xiets.basic;

import java.awt.Font;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

/**
 * 文章《<a href="https://blog.csdn.net/xietansheng/article/details/74362076" target="_balnk">JavaSwing_2.1: JLabel（标签）</a>》中的示例代码
 * @author 杨军
 * @since 2023-12-21
 */
public class JLabelDemo {
    
    public static void main(String[] args) {
        JFrame frame = new JFrame("测试窗口");
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        
        // 创建内容面板，默认使用流式布局
        JPanel panel = new JPanel();
        
        /*
         * 只显示文本
         */
        JLabel label1 = new JLabel();
        label1.setText("Only Text");
        label1.setFont(new Font(null, Font.PLAIN, 25)); // 设置字体，null 表示使用默认字体
        panel.add(label1);
        
        /*
         * 只显示图片
         */
        JLabel label2 = new JLabel();
        // 下列图片来源于 Bing 搜索引擎，侵权请联系项目作者删除
        label2.setIcon(new ImageIcon(JLabelDemo.class.getResource("/assets/images/jlabel/Kondratenko_1883_150x150.jpg")));
        panel.add(label2);
        
        /*
         * 同时显示文本和图片
         */
        JLabel label3 = new JLabel();
        label3.setText("文本和图片");
        // 下列图片来源于 Bing 搜索引擎，侵权请联系项目作者删除
        label3.setIcon(new ImageIcon(JLabelDemo.class.getResource("/assets/images/jlabel/istockphoto-1288321917-170x170.jpg")));
        label3.setHorizontalTextPosition(SwingConstants.CENTER); // 水平方向文本在图片中心
        label3.setVerticalTextPosition(SwingConstants.BOTTOM); // 垂直方向文本在图片下方
        panel.add(label3);
        
        frame.setContentPane(panel);
        frame.pack();
        frame.setVisible(true);
    }
    
}
